home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HyperLib 1997 Winter - Disc 1
/
HYPERLIB-1997-Winter-CD1.ISO.7z
/
HYPERLIB-1997-Winter-CD1.ISO
/
オンラインウェア
/
UTIL
/
MenuBarSlide folder.sit
/
MenuBarSlide folder
/
MenuBarSlide.txt
< prev
Wrap
Text File
|
1995-03-23
|
4KB
|
88 lines
This is an idea of mine for improving the Macintosh user
interface.With the current MultiFinder, switching applications
is easy to do by accident and doesnユt always cause a noticeable
change in the screen display. I suggest that the application
menu bar ought to "slide off" the screen whenever it is
suspended, and have written an INIT that does this.
BACKGROUND
The inspiration came from running introduction to Macintosh
courses here at the university. I noticed a lot of students
had trouble with application switching. They would click on
the wrong window and not notice the change of application,
or select the wrong application menu choice and end up in an
application with no windows open. The visual cues, a tiny icon
changing in the top right corner and a window activation, are a
bit too subtle for new users - especially if the application
doesn't have any windows to activate.
Afterwards I thought about it occasionally until one day I
remembered Andy Hertzfelds Switcher. (For you youngsters out
there, this was the predecessor to MultiFinder. Each
application took over the whole screen. When you switched, all
the windows, palettes, and whatnot scrolled off one edge and
the new application came in from the other like a HyperCard
effect.) Even though we now expect applications to share the
screen real estate, the menu bar is still exclusive so why not
scroll it to show the change?
Hence this INIT. When installed, the menubar slides across the
screen everytime you switch from the Finder to an application,
or from one application to another. The process adds a very
slight delay to the switch, less than ten ticks. It leaves the
help and application menus where they are, since it is meant
to convey that the application environment is changing, not
the whole system.
If you want a demonstration without installing and rebooting,
run the MenuBarSlide Demo application. It slides its own menu
bar when suspended.
HOW IT WORKS
The INIT puts a patch on DrawMenuBar that looks for a change to
the low memory global MenuList, and slides the old menu bar off
before drawing the new.
Intercepting suspend events sent to applications would have been
the easiest and cleanest solution, but unfortunately it just
doesn't work. GNEFilter procs don't get called for OS events.
Known problems:
* It can't detect a switch from an application to the Finder
so the menu bar doesn't slide when you do so.I spent a lot of
time trying to figure out how to detect that, but never found
a reliable solution. Any ideas?
* HyperCard does its own menu bar drawing, so the menu bar
doesn't slide.
The source code is also freely distributable. The INIT is
written in MPW Assembler, the demo app in THINK Pascal 4.
Mail me if you would like a copy.
CREDITS
Thanks to Matthew Axsom (chewey@nesw.MV.COM) for code to find
out where the right edge of the application menus really is,
Brian Stern (Jaeger@fquest.com) for the INIT Writing FAQ, and
the many people who took the trouble to try out the original
demo and encouraged me to develop it further.
Hugh Fisher
Australian National University
Email: Hugh.Fisher@anu.edu.au
Copyright (c) Hugh Fisher 1995. Permission granted to freely
distribute as you wish. This code is guaranteed to be of
standard commercial quality: I'll try to fix any problems you
find, but it's not MY fault even if your computer explodes.